# 使用 Maven 镜像打包应用
FROM maven:3.9-eclipse-temurin-17 AS builder
WORKDIR /app
# 1. 依赖单独复制并打包（利用 Docker 缓存层）
COPY pom.xml .
# 2. 下载依赖（这一步会被 Docker 缓存），RUN命令会创建层
#  只有当 pom.xml 变化时才重新执行
RUN mvn dependency:go-offline -B

# 3. 复制源码
COPY src ./src
# 4. 打包（复用上面下载的依赖）
RUN mvn package -DskipTests
# 基础镜像
FROM eclipse-temurin:17-jre-jammy
WORKDIR /app
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY --from=builder /app/target/*.jar app.jar
EXPOSE 8080
# 入口
ENTRYPOINT ["java","-jar","app.jar"]